// src/services/categoryService.js
import apiClient from './api'

/**
 * 获取所有板块列表 (公开访问)
 * @returns {Promise<AxiosResponse<any>>}
 */
export const getCategories = async () => {
  return await apiClient.get('/categories')
}

/**
 * (管理员) 创建新板块
 * @param {Object} categoryData - 板块数据 { name, description, iconUrl, sortOrder }
 * @returns {Promise<AxiosResponse<any>>}
 */
export const createCategory = async (categoryData) => {
  return await apiClient.post('/categories', categoryData)
}

/**
 * (管理员) 更新板块
 * @param {number} id - 板块 ID
 * @param {Object} categoryData - 更新的板块数据 { name, description, iconUrl, sortOrder }
 * @returns {Promise<AxiosResponse<any>>}
 */
export const updateCategory = async (id, categoryData) => {
  return await apiClient.put(`/categories/${id}`, categoryData)
}

/**
 * (管理员) 删除板块
 * @param {number} id - 板块 ID
 * @returns {Promise<AxiosResponse<any>>}
 */
export const deleteCategory = async (id) => {
  return await apiClient.delete(`/categories/${id}`)
}

// --- 新增: 获取单个板块详情 ---
/**
 * 获取单个板块详情 (公开访问)
 * @param {number} id - 板块 ID
 * @returns {Promise<AxiosResponse<any>>}
 */
export const getCategoryById = async (id) => {
  return await apiClient.get(`/categories/${id}`)
}
// --- ---

// --- 新增: 根据板块 ID 获取帖子列表 (分页) ---
/**
 * 根据板块 ID 获取帖子列表 (分页)
 * @param {number} categoryId - 板块 ID
 * @param {Object} params - 查询参数 { page, size, sort }
 * @returns {Promise<AxiosResponse<any>>}
 */
export const getPostsByCategoryId = async (categoryId, params = {}) => {
  // 假设后端有 `/api/posts` 端点，并支持通过 categoryId 查询参数筛选
  return await apiClient.get('/posts', { params: { categoryId, ...params } })
}
// --- ---
